The term P2P refers to a type of transient Internet network that allows a group of users with the same networking program to connect with each other, directly access files from one another's data storage and provide other services among each other via the network. Various P2P configurations exist, such as a centralized configuration, a decentralized configuration and a controlled centralized configuration. In a centralized configuration, the system depends on a central server that directs the communication between peers. “Napster” is an example of a centralized configuration. A decentralized configuration has not got a central server, and each peer is capable of acting as a client, as a server or as both. A user connects to the decentralized network by connecting to another user who is connected. “Gnutella” and “Kazaa” are examples of decentralized networks. In a controlled decentralized configuration a user may act as a client, as a server or as both as in the decentralized configuration, but specific operators control which user is allowed to access which particular server. “Morpheus” is an example of the latter. For a brief discussion of P2P network architectures see, e.g., “Stretching The Fabric Of The Net: Examining the present and potential of peer-to-peer technologies”, Software & Information Industry Association (SIIA), 2001.